package com.eportal.service;
import com.alibaba.fastjson.JSONObject;
import com.eportal.action.background.FixAction;
import com.eportal.domain.FixApply;
import com.eportal.domain.FixFixer;
import com.eportal.domain.Sysopt;
import com.eportal.entity.FixFixerEntity;
import com.eportal.params.background.Fix.FixParam;
import com.eportal.vo.controller.background.fix.ApplyDetailVO;
import com.eportal.vo.controller.background.fix.FixListVO;
import com.framework.jqgrid.JqGridPager;
import com.framework.jqgrid.PageEntity;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

public interface FixService extends BaseService<FixFixerEntity> {

	List<Map<String, Object>> list(JqGridPager jqGridPager);

	List<Map<String, Object>> fixerList(JqGridPager jqGridPager);

	List<Map<String, Object>> fixerFixList(JqGridPager jqGridPager);

	Map<String, Object> addMethod(FixFixer fixFixer);

	Map<String, Object> updateMethod(FixFixer fixFixer);

	Map<String, Object> deleteMethod(String ids);

	FixFixer getFixFixer(Long sid);

	FixApply getFixApply(Long sid);

	Map<String, Object> replyMethod(String sid, String fixerId, String fixStartTime, String fixEndTime);

	List<FixFixer> listFixerAll(String hql);

	Map<String, String> getDetailBySql(String sql);

	Map<String, Object> deleteFixMethod(String ids);


//todo-----------------------------------------------------------------------------------------------------

	/**
	 * 报修列表
	 * @author Saber
	 * @Date 2017/8/23 下午3:34
	 * @param pageEntity		分页对象
	 * @param param				查询参数
	 * @param user				当前用户
	 * @param userRole			当前用户userRole
	 * @see FixService#list(JqGridPager)
	 * @return
	 */
	PageInfo<FixListVO> queryForPage(PageEntity pageEntity, FixParam param, Sysopt user, int userRole);

	/**
	 * 报修详情
	 * @author Saber
	 * @Date 2017/8/24 上午9:50
	 * @param sId		sId
	 * @see FixAction#applyDetailView()
	 * @return
	 */
	ApplyDetailVO applyDetail(Long sId);

	/**
	 * 删除报修
	 * @author Saber
	 * @Date 2017/8/24 上午10:48
	 * @param sIds		sId集合 用,分割
	 * @see FixService#deleteMethod(String)
	 * @return
	 */
	JSONObject deleteFix(String sIds);
}
